shell 您所在的位置:网站首页 linux 命令去重 shell

shell

2023-08-27 03:37| 来源: 网络整理| 查看: 265

字符串截取的八种方法和去重 # 号截取 1、单#号2、双#号截取 %号截取 1、单%号2、双%号 : 号截取 1、左侧2、右侧 去重 1、sort -u 2、uniq3、示例

字符串截取的八种方法和去重

Note: 本文不是采用的sed剪裁方法 Note: 本文截取

# 号截取 1、单#号

单#号截取,可以删除特定字符的左侧所有字符,并保留右侧字符。 这里的特定字符默认指从左测开始的第一个特定字符,如下代码段 b 是左侧第一个 b 。

[root@bogon ~]# char=abdasb1221342 [root@bogon ~]# echo ${char#*b} # 注意*的存在 dasb1221342 [root@bogon ~]# echo ${char#b} # 与* 对比 abdasb1221342 2、双#号截取

## 删除从最右边的一个特定字符的左边所有字符,保留右边字符。

[root@bogon ~]# char=abdasb1221342 [root@bogon ~]# echo ${char##*1} # 注意*号 342 [root@bogon ~]# echo ${char##1} abdasb1221342 %号截取 1、单%号

单% 号截取,删除从右边开始的第一个特定字符的右边所有字符。

[root@bogon ~]# char=abdasb1221342 [root@bogon ~]# echo ${char%1*} # 注意* 号 abdasb122 [root@bogon ~]# echo ${char%1} abdasb1221342 2、双%号

%%表示删除从右边开始最左边一个特定字符及其右边字符

[root@bogon ~]# char=abdasb1221342 [root@bogon ~]# echo ${char%%1*} abdasb You have mail in /var/spool/mail/root [root@bogon ~]# echo ${char%%1} abdasb1221342 : 号截取

Note: 一下部分直接举例说明,上面# % 为删除字符,下面的: 为截取字符。

1、左侧 双 : 号 [root@bogon ~]# char=abdasb1221342 [root@bogon ~]# echo ${char:1:2} # 第一个数字表示开始字符下标(从0开始),第二个表示截取下来的字符总个数 bd You have mail in /var/spool/mail/root [root@bogon ~]# echo ${char:0:4} abda 单 : 号 [root@bogon ~]# char=abdasb1221342 [root@bogon ~]# echo ${char:6} # 从左测开始下标为6(就是第7个)开始截取一直到结束 1221342 2、右侧 双 : 号 [root@bogon ~]# char=abdasb1221342 [root@bogon ~]# echo ${char:0-11:6} # 从右侧开始第11个,截取6个 dasb12 单 : 号 [root@bogon ~]# char=abdasb1221342 [root@bogon ~]# echo ${char:0-10} # 从右侧第十个开始,一直到右侧结束 asb1221342 [root@bogon ~]# echo ${char: -10} # 将0用空格替代,与上相同 asb1221342 [root@bogon ~]# echo ${char:-10} # 注意这里没有空格 abdasb1221342 去重 1、sort -u 

去除重复只保留一个

2、uniq

只去除连续的重复

3、示例 [root@bogon ~]# cat csdn abc abc abc xyz abc [root@bogon ~]# sort -u csdn abc xyz [root@bogon ~]# uniq csdn abc xyz abc


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有